﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace UnigenReport
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);

            ////Engypt cnn
            //Common.LockConfigFile();

            ////Load file cấu hình
            //SystemConfig.Load();

            ////Kiểm tra login, nếu ok thì mở form main. Ko thì nghỉ!
            //fLogin fLogin = new fLogin();
            //fLogin.StartPosition = FormStartPosition.CenterScreen;
            //if (fLogin.ShowDialog() == DialogResult.OK)
            //{
            //    var fMain = new fMain();
            //    fMain.WindowState = FormWindowState.Maximized;
            //    Application.Run(fMain);
            //}
            //else
            //{
            //    Application.Exit();
            //}            
            //Check connection
            try
            {
                var cnn = new UnigenDataContext();
                if (!cnn.DatabaseExists())
                {
                    Common.ShowNoticeMess("Không thể kết nối server. \nNếu là lần chạy đầu hãy config các thông số cần thiết!");
                    var fConfig = new fConfig();
                    fConfig.StartPosition = FormStartPosition.CenterScreen;
                    fConfig.ShowDialog();
                    Application.Exit();
                }
                else
                {
                    //Engypt cnn
                    Common.LockConfigFile();

                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);

                    //Load file cấu hình
                    SystemConfig.Load();

                    //Kiểm tra login, nếu ok thì mở form main. Ko thì nghỉ!
                    fLogin fLogin = new fLogin();
                    fLogin.StartPosition = FormStartPosition.CenterScreen;
                    if (fLogin.ShowDialog() == DialogResult.OK)
                    {
                        var fMain = new fMain();
                        fMain.WindowState = FormWindowState.Maximized;
                        Application.Run(fMain);
                    }
                    else
                    {
                        Application.Exit();
                    }
                }
            }
            catch(Exception ex)
            {
                Common.ShowNoticeMess("Phát sinh lỗi: " + ex.Message);
                Application.Exit();
            }
        }
    }
}
